Many enterprise computing systems are used for performing transaction processes that relate to products. In such a system, there may be database objects that relate to different products, or product models, defined in the system. In addition, there may be database objects for a particular transaction, such as a sales order transaction, that relates to a product.
An enterprise may use what is commonly referred to as product master data for each product type it sells. The product master data itself may be a database object class definition for a particular product type. For example, in a scenario where the enterprise is an automobile company, there may be a different product database object class definition, for each model and year of automobile in the company's inventory. An instance of this product database object class may represent a single automobile that has been ordered or manufactured. Such a product object instance may, for example, document the value of different attributes for the particular automobile, such as the color of the car being red for example.
Because a single enterprise may create product master data for many different product types, or models, it is common to use what may be referred to as a set type that may be associated with the product master data for one or more different product types, or models. A set type may be associated with master data for multiple different product models, and may define one or more attributes, allowable values for the attributes, and in some cases, default values for the attributes that are common for all of the product master data with which the set type is associated. For example, in the automobile scenario, there may be a product master set type for color, and the set type may define that the allowable colors are red, green and blue, and that a default color is red. When creating master data for a particular product model, a user configuring the master data may select a set type that has been previously created for use with the master data for many different products, instead of creating a new color attribute definition for each product model's master data.
Generally, a product transaction process may involve the creation of a product transaction object instance of a predefined product transaction object class. For example, in the automobile company scenario previously mentioned, there may be a sales order transaction process database object class that defines attributes included in all sales orders, as well as allowable values, and in some cases default values, for the defined attributes. During execution of the product transaction process, an instance may be created of the product transaction process database object class, and the created transaction object instance may include all information needed for the sales order, such as a definition of one or more product types that are included in the sales order.
It is very common that software vendors provide a standard transaction processing software package that will need to be customized by a customer of the software package to meet the customer's particular needs. This may be done by the customer creating “extensions” to the standard software package. An extension may be a defined object class referred to as an extension object class. An extension object class may be created and associated with a particular transaction database object class that is being customized. Extension objects for a product transaction database object may, for example, include attributes and attribute values that are to be used in the customized product transaction process, and in some cases, may involve attributes and attribute values used in product master data.
Managing the customization of standard software packages has long been a challenging task. This is especially true for transaction processing systems that may involve many different types of product transaction processing database object classes and product database object classes. Creating, managing, and maintaining customized extensions in this environment is a particularly difficult task.